package com.yfp.operation.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yfp.common.core.web.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 礼包销售
 *
 * @TableName mar_coupon_pack_shop
 */
@TableName(value = "mar_coupon_pack_shop")
@Data
@Tag(name = "礼包销售")
public class MarCouponPackShop extends BaseEntity implements Serializable {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Schema(description = "主键ID")
    private Long id;

    /**
     * 优惠券礼包ID
     */
    @Schema(description = "优惠券礼包ID")
    private Long couponPackId;

    @Schema(description = "优惠券礼包名称")
    @TableField(exist = false)
    private String packName;

    /**
     * 优惠券礼包价格
     */
    @Schema(description = "优惠券礼包价格")
    private BigDecimal price;

    /**
     * 总销售份数
     */
    @Schema(description = "总销售份数")
    private Long packNum;

    /**
     * 排序
     */
    @Schema(description = "排序")
    private Integer sort;

    /**
     * 购买说明
     */
    @Schema(description = "购买说明")
    private String declare;

    /**
     * 商品图
     */
    @Schema(description = "商品图")
    private String shopImg;

    /**
     * 套餐标签ID
     */
    @Schema(description = "套餐标签ID")
    private String tagId;

    /**
     * 状态0未上架1已上架2已下架
     */
    @Schema(description = "状态0未上架1已上架2已下架")
    private Integer status;

    /**
     * 创建用户ID
     */
    @Schema(description = "创建用户ID")
    private Long createUserId;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createTime;

    /**
     * 编辑用户ID
     */
    @Schema(description = "编辑用户ID")
    private Long updateUserId;

    /**
     * 编辑时间
     */
    @Schema(description = "编辑时间")
    private Date updateTime;

    /**
     * 实时库存数量
     */
    @Schema(description = "实时库存数量")
    private Long currentStock;

    @Schema(description = "已售出份数")
    private Long soldQuantity;

    @Schema(description = "礼包剩余数量")
    @TableField(exist = false)
    private Long packSurplusCount;

    @Schema(description = "城市名称")
    private String cityName;

    @Schema(description = "部门ID（数据权限使用）")
    private Long deptId;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}